#ifndef USERPROFILE_H
#define USERPROFILE_H

#include <QWidget>
#include <QFile>
#include <QStringList>
#include <openssl/aes.h>
#include "../../profile.h"
#include "../../providers/serviceprovider.h"



class UserProfile : public Profile
{
    Q_OBJECT
public:
    explicit UserProfile(Profile *parent = 0);
    explicit UserProfile(QString &file_name, Profile *parent = 0);
    UserProfile(QString file_name, QStringList &params, unsigned char *key, ServiceProvider *serviceProvider, Profile *parent = 0);
    ~UserProfile();

    void                    SaveParamsFromList(QStringList &params);
    QStringList             &GetParamList();

//getters
    QString                 user_name();
    QString                 user_login();
    QString                 password();
    QString                 provider_name();
    QString                 file_name();
    QString                 balance();
const ServiceProvider       &serviceProvider();
    int                     login_type();
//setters
    void                    set_user_name(QString value);
    void                    set_user_login(QString value);
    void                    set_password(QString value);
    void                    set_provider_index(int value);
    void                    set_provider_name(QString value);
    void                    set_file_name(QString value);
    void                    set_balance(QString value);
    void                    set_service_provider(ServiceProvider* serviceProvider);
    void                    set_login_type(int type);

    bool                    operator==(UserProfile & other) const;
    UserProfile&            operator=( UserProfile & other);
private:
    QString*                StringFromParameters();
    QString                 m_user_name;
    int                     m_login_type;//telephone/login/e-mail
    QString                 m_user_login;
    QString                 m_password;
    QString                 m_provider_name;
    //QString                 m_file_name;
    QString                 m_balance;
ServiceProvider*            m_serviceProvider;
QStringList                 data_list;

signals:

public slots:


};

#endif // USERPROFILE_H
